{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# CS 240: Principles of Computer Organization\n", "## Bryn Mawr College
Fall 2015
Professor Douglas Blank\n", "\n", "* General Information\n", "* Syllabus and Schedule\n", "* Text and Software\n", "* Course Policies\n", "* Reference Links" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# General Information\n", "\n", " Item | Description\n", "--|--\n", "**Instructor** | Douglas Blank\n", "**Office hours** | Mondays 9:00am - 10:00am, and by appointment\n", "**E-Mail** | [dblank@cs.brynmawr.edu](mailto:dblank@cs.brynmawr.edu)\n", "**Website** | http://cs.brynmawr.edu/cs240/\n", "**Class** | Mondays/Wednesdays 2:40pm - 4:00pm\n", "**Room** | Park 336\n", "**Phone** | (610)526-6501\n", "**Open Lab** | Wednesdays 9:00am - 11:00pm Park Room 231 (Computer Science Lab)\n", "**Lab Assistants**| TBA\n", "**Grades** | http://moodle.brynmawr.edu/\n", "**Jupyter, login**| https://athena.brynmawr.edu/jupyter/" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Syllabus and Schedule\n", "\n", "**Course Description**: A classroom/laboratory course studying the hierarchical design of modern digital computers. Combinatorial and sequential logic elements; construction of microprocessors; instruction sets; assembly language programming. Lectures cover the theoretical aspects of machine architecture. In the laboratory, designs discussed in lecture are constructed in software. Prerequisite: CMSC B206 and CMSC B231." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Schedule\n", "\n", "Week | Date | Topic | Assignment | Notes\n", "---- | ------ | ----- | ---------- | -----\n", "1 | Aug 31 | Overview | For Wednesday, read Chapter 1, do [Assignment1](Assignments/Assignment1.ipynb) | Jupyter on Athena: https://athena.brynmawr.edu/jupyter
[Howto change password](Notes/Aug31.ipynb)\n", " | Sep 2 | Ch 1, Welcome Aboard! | For Wednesday, read Chapter 2, do [Assignment2](Assignments/Assignment2.ipynb) |\n", "2 | Sep 7 | **Labor day - No classes** ||\n", " | Sep 9 | [Bits, Data types, and operations; Floating-point operations](Notes/Data Types.ipynb) | For next Monday, read Chapter 4; do [Assignment3](Assignments/Assignment3.ipynb) |\n", "3 | Sep 14 | The von Neumann Model | Read Chapter 5 for Wednesday |\n", " | Sep 16 | The LC-3 | [Assignment4](Assignments/Assignment4.ipynb), Read Chapter 6 for next week | [Branching](Notes/Branch%20Examples.ipynb)\n", "4 | Sep 21 | Programming, Branching, and Debugging | | [Debugging](Notes/Debugging%20LC3%20Programs.ipynb), [Flowcharts](Notes/Dot%20Flowchart%20Example.ipynb)\n", " | Sep 23 | [Using Memory](Notes/Using%20Memory.ipynb) | Assignment5 due Monday | \n", "5 | Sep 28 | [Practice Machine coding using memory](Notes/Sep28.ipynb) | Read Chapter 7 |\n", " | Sep 30 | In-class exercise | |\n", "6 | Oct 5 | [LC3 Assembly Language](Notes/LC3%20Assembly%20Language.ipynb) | Write Assembly Code |\n", " | Oct 7 | Chapter 7 exercises | |\n", "7 | Oct 12 | **Fall break - No classes** ||\n", " | Oct 14 | **Fall break - No classes** ||\n", "8 | Oct 19 | Review for Exam 1 | |\n", " | Oct 21 | **Exam 1** | |\n", "9 | Oct 26 | [Transistors](Notes/Transistors.ipynb) | | [Assignment6](Assignments/Assignment6.ipynb)\n", " | Oct 28 | Solder Circuit Boards | |\n", "10 | Nov 2 | Transistors, details | |\n", " | Nov 4 | Return Exam, Review Chapter 3 | Read Ch. 8 | \n", "11 | Nov 9 | [Input/Output](Notes/LC-3%20I-O.ipynb) | Read Ch. 9 | [Assignment7](Assignments/Assignment7.ipynb)\n", " | Nov 11 | [Subroutines](Notes/Subroutines.ipynb) | Read Ch.10 | BonusAssignment\n", "12 | Nov 16 | Subroutines and Tic Tac Toe | Ch. 10 |\n", " | Nov 18 | Projects, [Screen Routines](Notes/Screen%20Routines.ipynb) | |\n", "13 | Nov 23 | [LC-3 Changes](Notes/LC-3%20Changes.ipynb) | |\n", " | Nov 25 | **Thanksgiving break begins** ||\n", "14 | Nov 30 | [Randomness in LC-3](Notes/Randomness%20in%20LC-3.ipynb) | [LC-3 Changes, cont](Notes/LC-3%20Changes%2C%20Dec%201.ipynb) |\n", " | Dec 2 | [The C Programming Language](Notes/The%20C%20Programming%20Language.ipynb) | Chapters 11, 12, 13, 14 | [TERMINAL with .STRINGC](Notes/TERMINAL%20with%20.STRINGC.ipynb)\n", "15 | Dec 7 | Presentations | |\n", " | Dec 9 | Presentations | | " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Important Dates\n", "\n", "* Fall Classes Begin: Monday, August 31, 2015\n", "* Labor Day - No Classes: Monday, September 7, 2015\n", "* Fall Break Begins (after last class): Friday, October 9, 2015\n", "* Fall Break Ends (at 8am): Monday, October 19, 2015\n", "* Last day of classes: Thursday, December 10, 2015\n", "* Reading Days: Friday, December 11, 2015\n", "* Exams Begin: Sunday, December 13, 2015\n", "* Exams End (at 12:30pm): Friday, December 18, 2015\n", "* Final Grade Due (at noon): Monday, January 4, 2016" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Text and Software\n", "\n", "## Text\n", "[Introduction to Computing Systems: From Bits & Gates to C & Beyond (second edition)](http://highered.mheducation.com/sites/0072467509/index.html), by Yale N. Patt & Sanjay J. Patel, McGraw Hill Publishers, 2004. \n", "\n", "\n", "\n", "## Software\n", "\n", "We will be using the Jupyter Little Computer 3 simulator and software, installed on the Athena computer cluster:\n", "* https://athena.brynmawr.edu/jupyter\n", "\n", "You should have already received a password and username via email. If not, please let me know." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Course Policies" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Participation\n", "\n", "Attendance and active participation are expected in every class. Participation includes asking questions, contributing answers, proposing ideas, and providing constructive comments.\n", "\n", "As you will discover, we are proponents of two-way communication and we welcome feedback during the semester about the course. We are available to answer student questions, listen to concerns, and talk about any course-related topic (or otherwise!). Come to office hours! This helps us get to know you. You are welcome to stop by and chat. There are many more exciting topics to talk about that we won't have time to cover in-class.\n", "\n", "Although computer science work can be intense, please stay in touch with us, particularly if you feel stuck on a topic or project and can't figure out how to proceed. Often a quick e-mail, phone call or face-to-face conference can reveal solutions to problems and generate renewed creative and scholarly energy. It is essential that you begin assignments early, since we will be covering a variety of challenging topics in this course." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Grading\n", "\n", "There will be about seven assignments, weighted equally in the final grading. Assignments must be submitted according to the Assignment Submission instructions. \n", "\n", "At the end of the semester, final grades will be calculated as a weighted average of all grades according to the following weights:\n", "\n", "Item | Percentage\n", "----- | ---------\n", "Exam 1 | 20%\n", "Exam 2 | 25%\n", "Assignments| 45% \n", "Project | 10%\n", "Total | 100%\n", "\n", "Incomplete grades will be given only for verifiable medical illness or other such dire circumstances." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Submission and Late Policy\n", "\n", "All work must be turned in either in hard-copy or electronic submission, depending on the instructions given in the assignment. E-mail submissions, when permitted, should request a \"delivery receipt\" to document time and date of submission. Extensions will be given only in the case of verifiable medical excuses or other such dire circumstances, if requested in advance and supported by your Academic Dean.\n", "\n", "**No assignment will be accepted after it is past due.**\n", "\n", "**No past work can be \"made up\" after it is due.**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exams\n", "\n", "There will be two exams in this course. The exams will be open-book and open-notes. The exams will cover material from lectures, homeworks, and assigned readings (including topics not discussed in class)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Study Groups\n", "\n", "We encourage you to discuss the material and work together to understand it. Here are our thoughts on collaborating with other students:\n", "\n", "* The readings and lecture topics are group work. Please discuss the readings and associated topics with each other. Work together to understand the material. We highly recommend forming a reading group to discuss the material -- we will explore many ideas and it helps to have multiple people working together to understand them.\n", "* It is fine to discuss the topics covered in the homeworks, to discuss approaches to problems, and to sketch out general solutions. However, you MUST write up the homework answers, solutions, and programs individually without sharing specific solutions, mathematical results, program code, etc. If you made any notes or worked out something on a white board with another person while you were discussing the homework, you shouldn't use those notes while writing up your answer.\n", "* You should not show your code to other students before it is submitted. After it has been submitted, we will share and demonstrate code.\n", "* You may discuss high-level code ideas with others.\n", "\n", "If you have any questions as to what types of collaborations are allowed, please feel free to ask." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Reference Links\n", "\n", "* Grades: http://moodle.brynmawr.edu/\n", "* Jupyter: https://athena.brynmawr.edu/jupyter" ] } ], "metadata": { "kernelspec": { "display_name": "Calysto LC3", "language": "asm", "name": "calysto_lc3" }, "language_info": { "file_extension": ".asm", "mimetype": "text/x-gas", "name": "gas" } }, "nbformat": 4, "nbformat_minor": 1 }